package com.jzo2o.customer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jzo2o.common.model.PageResult;
import com.jzo2o.customer.model.domain.AgencyCertificationAudit;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditAddReqDTO;
import com.jzo2o.customer.model.dto.request.AgencyCertificationAuditPageQueryReqDTO;
import com.jzo2o.customer.model.dto.response.AgencyCertificationAuditResDTO;

/**
 * @author: LiuLi
 * @Date: 2025/09/18 上午11:38
 * @Description: 机构认证审核服务接口
 */
public interface IAgencyCertificationAuditService extends IService<AgencyCertificationAudit> {
    /**
     * 申请机构认证审核
     * @param agencyCertificationAuditAddReqDTO 机构认证审核申请DTO
     */
    void add(AgencyCertificationAuditAddReqDTO agencyCertificationAuditAddReqDTO);
    
    /**
     * 分页查询认证申请信息
     * @param queryDTO 分页查询条件
     * @return 分页结果
     */
    PageResult<AgencyCertificationAuditResDTO> pageQuery(AgencyCertificationAuditPageQueryReqDTO queryDTO);

    /**
     * 查询机构认证申请失败原因
     * @param serveProviderId 机构id
     * @return 失败原因
     */
    String getRejectReason(Long serveProviderId);

    /**
     * 审核机构认证信息
     * @param id 认证审核id
     * @param certificationStatus 认证状态
     * @param rejectReason 驳回原因
     */
    void audit(Long id, Integer certificationStatus, String rejectReason);

}